<?php


namespace app\index\model;


use think\Model;
use think\model\relation\HasOne;

/**
 * 用户实体
 * Class User
 * @package app\index\model
 */
class User extends Model
{
    // 自动完成
    protected $auto = ['ip'];

    protected function setIpAttr()
    {
        return request()->ip();
    }

    protected $table = 't_user';
    // 自动时间戳
    //protected $autoWriteTimestamp = true;
    // 时间默认是int,改为datetime
    protected $autoWriteTimestamp = 'datetime';

    // 搜索器
    public function searchNameAttr($query, $val, $data)
    {
        $query->where('name', 'like', '%' . $val . '%');
        if (isset($data['sort'])) {
            $query->order($data['sort']);
        }
    }

    //  模型事件 观察者模式2
    protected $observerClass = '\app\index\event\User';

    // 模型事件
    public static function init()
    {
        // 插入前执行
        /* self::event('before_insert', function ($user) {
             dump('Insert前执行：' . $user);
         });
         self::afterInsert(function ($user) {
             dump("======");
             dump("Insert后执行：" . $user);
         });*/

        // 观察者模式1
        // self::observe(\app\index\event\User::class);
    }

    //
    public function order()
    {
        return $this->hasOne('Order');
    }
}